package com.icss.train_sys_back.service.train_manage;

import com.icss.train_sys_back.entity.ticket_manage.TicketNumberEntity;
import com.icss.train_sys_back.entity.train_manage.StationEntity;
import com.icss.train_sys_back.entity.train_manage.TrainNumberEntity;
import com.icss.train_sys_back.entity.train_manage.TrainStationEntity;

import java.util.List;

/**
 * @author wk
 * @desc
 * @date 2025/9/25 16:45
 */
public interface TrainNumberService {
    List<TrainNumberEntity> findTrainNumberList(String trainNumber, Integer status);

    boolean updateTrainNumber(TrainNumberEntity trainNumber);

    boolean addTrainNumber(TrainNumberEntity trainNumber);

    boolean deleteTrainNumber(Integer id);

    //查找车站列表(下拉框显示)
    List<StationEntity> findStationList();

    //根据车次Id获取车次实体，删除车次经停站表需要车次中的车辆号train Number
    TrainNumberEntity findTrainNumberByTrainId(Integer id);

    //根据trainNumber删除经停站表的所有数据
    boolean deleteArriveStationByTrainNumber(String trainNumber);

    //根据车站名获取到车站的经纬度信息  -- X
    Integer findStationXByStationName(String stationName);

    //根据车站名获取到车站的经纬度信息  -- Y
    Integer findStationYByStationName(String stationName);

    //2.2 根据车次的始发站名称获取该车次的始发站 -- 获取始发站的经纬度用
    StationEntity findStartStationByStartStationName(String startStation);

    //经停站插入经停站表
    void insertTrainStation(TrainStationEntity trainStation);

    //2.4 更新trainNumber表中 经停站数 字段 （传回来的经停站集合的长度）
    void updateTrainNumberStayStationNumber(int size, Integer id);

    //根据车次Id获取经停站列表
    List<TrainStationEntity> findTrainStationsByTrainNumberId(Integer trainNumberId);

    //根据车次Id获取票数信息
    TicketNumberEntity getTicketNumberById(Integer trainNumberId, Integer carriageType);

    //车次添加脚本
    void batchAdd(List<TrainNumberEntity> trainNumberEntityList);
}
